package org.xmap.ui.base;
/**
 * <p>基础结构，封装了一个点。</p>
 * @author Zealot
 * @version 1.0
 */
public final class Point {
    /**
     * 点的横坐标。
     */
    public int x;
    /**
     * 点的纵坐标。
     */
    public int y;
    /**
     * 默认构造函数，横纵坐标初始值为（0，0）。
     */
    public Point() {
        this(0, 0);
    }
    /**
     * 通过指定点为参数的构造函数。
     * @param p Point 指定的点。
     */
    public Point(Point p) {
        this(p.x, p.y);
    }
    /**
     * 通过指定横纵坐标为参数的构造函数。
     * @param x int 横坐标。
     * @param y int 纵坐标。
     */
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }
    /**
     * 通过指定的点的坐标，设置当前点的坐标。
     * @param p Point 指定的点。
     */
    public void setXY(Point p) {
        this.setXY(p.x, p.y);
    }
    /**
     * 通过指定横纵坐标，设置当前点的坐标。
     * @param x int 横坐标。
     * @param y int 纵坐标。
     */
    public void setXY(int x, int y) {
        this.x = x;
        this.y = y;
    }
    /**
     * 在横坐标上移动指定像素。
     * @param x int 移动的横坐标像素值。
     */
    public void moveX(int x) {
        this.x += x;
    }
    /**
     * 在纵坐标上移动指定像素。
     * @param y int 移动的纵坐标像素值。
     */
    public void moveY(int y) {
        this.y += y;
    }
    /**
     * 在横纵坐标上移动指定像素。
     * @param x int 移动的横坐标像素值。
     * @param y int 移动的纵坐标像素值。
     */
    public void moveXY(int x, int y) {
        this.moveX(x);
        this.moveY(y);
    }
}
